#include "common/pch.h"
#include "metadata/creatureinfo.h"

#include <cftf/loger/syslog.h>
#include <cftc/reflect/class.h>
#include <cftc/reflect/field.h>

namespace mt
{
	 
	CFT_IMPLEMENT_REFLECT_CLASS_ANNOTATION_BEGIN(CreatureInfo, cftc::reflect::Object, R"()");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Entry, R"(wow_meta:"field_name:Entry")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Name, R"(wow_meta:"field_name:Name")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SubName, R"(wow_meta:"field_name:SubName")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinLevel, R"(wow_meta:"field_name:MinLevel")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxLevel, R"(wow_meta:"field_name:MaxLevel")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ModelId, R"(wow_meta:"element_size:mt.CreatureInfo.MAX_CREATURE_MODEL")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(FactionAlliance, R"(wow_meta:"field_name:FactionAlliance")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(FactionHorde, R"(wow_meta:"field_name:FactionHorde")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Scale, R"(wow_meta:"field_name:Scale")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Family, R"(wow_meta:"field_name:Family")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(CreatureType, R"(wow_meta:"field_name:CreatureType")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(InhabitType, R"(wow_meta:"field_name:InhabitType")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(RegenerateStats, R"(wow_meta:"field_name:RegenerateStats")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(RacialLeader, R"(wow_meta:"field_name:RacialLeader")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(NpcFlags, R"(wow_meta:"field_name:NpcFlags")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(UnitFlags, R"(wow_meta:"field_name:UnitFlags")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(DynamicFlags, R"(wow_meta:"field_name:DynamicFlags")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ExtraFlags, R"(wow_meta:"field_name:ExtraFlags")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(CreatureTypeFlags, R"(wow_meta:"field_name:CreatureTypeFlags")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SpeedWalk, R"(wow_meta:"field_name:SpeedWalk")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SpeedRun, R"(wow_meta:"field_name:SpeedRun")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(UnitClass, R"(wow_meta:"field_name:UnitClass")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Rank, R"(wow_meta:"field_name:Rank")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(HealthMultiplier, R"(wow_meta:"field_name:HealthMultiplier")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(PowerMultiplier, R"(wow_meta:"field_name:PowerMultiplier")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(DamageMultiplier, R"(wow_meta:"field_name:DamageMultiplier")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(DamageVariance, R"(wow_meta:"field_name:DamageVariance")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ArmorMultiplier, R"(wow_meta:"field_name:ArmorMultiplier")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ExperienceMultiplier, R"(wow_meta:"field_name:ExperienceMultiplier")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinLevelHealth, R"(wow_meta:"field_name:MinLevelHealth")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxLevelHealth, R"(wow_meta:"field_name:MaxLevelHealth")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinLevelMana, R"(wow_meta:"field_name:MinLevelMana")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxLevelMana, R"(wow_meta:"field_name:MaxLevelMana")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinMeleeDmg, R"(wow_meta:"field_name:MinMeleeDmg")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxMeleeDmg, R"(wow_meta:"field_name:MaxMeleeDmg")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinRangedDmg, R"(wow_meta:"field_name:MinRangedDmg")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxRangedDmg, R"(wow_meta:"field_name:MaxRangedDmg")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(Armor, R"(wow_meta:"field_name:Armor")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MeleeAttackPower, R"(wow_meta:"field_name:MeleeAttackPower")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(RangedAttackPower, R"(wow_meta:"field_name:RangedAttackPower")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MeleeBaseAttackTime, R"(wow_meta:"field_name:MeleeBaseAttackTime")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(RangedBaseAttackTime, R"(wow_meta:"field_name:RangedBaseAttackTime")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(DamageSchool, R"(wow_meta:"field_name:DamageSchool")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MinLootGold, R"(wow_meta:"field_name:MinLootGold")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MaxLootGold, R"(wow_meta:"field_name:MaxLootGold")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(LootId, R"(wow_meta:"field_name:LootId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(PickpocketLootId, R"(wow_meta:"field_name:PickpocketLootId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SkinningLootId, R"(wow_meta:"field_name:SkinningLootId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(KillCredit, R"(wow_meta:"element_size:mt.CreatureInfo.MAX_KILL_CREDIT")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MechanicImmuneMask, R"(wow_meta:"field_name:MechanicImmuneMask")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SchoolImmuneMask, R"(wow_meta:"field_name:SchoolImmuneMask")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceHoly, R"(wow_meta:"field_name:ResistanceHoly")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceFire, R"(wow_meta:"field_name:ResistanceFire")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceNature, R"(wow_meta:"field_name:ResistanceNature")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceFrost, R"(wow_meta:"field_name:ResistanceFrost")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceShadow, R"(wow_meta:"field_name:ResistanceShadow")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(ResistanceArcane, R"(wow_meta:"field_name:ResistanceArcane")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(SpellListId, R"(wow_meta:"field_name:SpellListId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(PetSpellDataId, R"(wow_meta:"field_name:PetSpellDataId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(MovementType, R"(wow_meta:"field_name:MovementType")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(TrainerType, R"(wow_meta:"field_name:TrainerType")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(TrainerSpell, R"(wow_meta:"field_name:TrainerSpell")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(TrainerClass, R"(wow_meta:"field_name:TrainerClass")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(TrainerRace, R"(wow_meta:"field_name:TrainerRace")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(TrainerTemplateId, R"(wow_meta:"field_name:TrainerTemplateId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(VendorTemplateId, R"(wow_meta:"field_name:VendorTemplateId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(GossipMenuId, R"(wow_meta:"field_name:GossipMenuId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(EquipmentTemplateId, R"(wow_meta:"field_name:EquipmentTemplateId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(civilian, R"(wow_meta:"field_name:Civilian")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(AIName, R"(wow_meta:"field_name:AIName")");
	CFT_IMPLEMENT_REFLECT_CLASS_END();

}